package cate.game.play.skill.passive.furniture;

import cate.common.table.d.GDSkill;
import cate.game.play.config.PlayCfgArgs;
import cate.game.play.proce.action.ctx.TimeActionCtx;
import cate.game.play.proce.move.MoveCtx;
import cate.game.play.skill.passive.PassiveHandler;

/**
 * 对随机3个目标造成110%伤害，第4回合释放，冷却4回合
 */
public class 普攻抉择PH extends PassiveHandler {

	private int 解锁回合;

	private int 冷却回合;

	private int 额外目标;

	private double 额外系数;

	//解锁回合=4&冷却回合=4&额外目标=2&额外系数=1000
	@Override
	public void parse(String code) {
		PlayCfgArgs args = new PlayCfgArgs(code);
		解锁回合 = args.getInt("解锁回合", 0);
		冷却回合 = args.getInt("冷却回合", 0);
		额外目标 = args.getInt("额外目标", 0);
		额外系数 = args.getDouble("额外系数", 0d);
	}

	@Override
	public void beforeOwnerMove(MoveCtx move, TimeActionCtx action) {
		if (move.getRound().index < 解锁回合 || 冷却回合 > 0 && (move.getRound().index - 解锁回合) % 冷却回合 != 0) {
			return;
		}
		if (!move.getSkill().cfg.isType(GDSkill.Type.ATTACK)) {
			return;
		}
		if (move.isAppend()) {
			return;
		}
		move.getSkill().param.addTargetNum(额外目标);
		move.getSkill().param.addHpCfgByCoeff(额外系数);
	}
}
